/*
 * IAtendimentoFacade.java
 *
 * Created on October 29, 2007, 9:06 PM
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */
package petstore.business;

import java.util.Date;
import java.util.List;
import petstore.model.Anamnese;
import petstore.model.Animal;
import petstore.model.Atendimento;
import petstore.model.ExameSolicitado;
import petstore.model.Pendencia;
import petstore.model.Pesagem;
import petstore.model.Receita;

/**
 *
 * @author Tom Hayden
 */
public interface IAtendimentoFacade {

    public abstract void incluirAtendimento(Atendimento atendimento);
    public abstract void alterarAtendimento(Atendimento atendimento);
    public abstract void excluirAtendimento(Atendimento atendimento);
    public abstract void cancelarAtendimento(Atendimento atendimento);
    public abstract Atendimento getAtendimento(Integer id);

    public abstract List<Atendimento> listarAtendimentoPorFuncionario(Integer idFuncionario, Date date);
    public abstract List<Atendimento> listarAtendimentoAgendadoPorFuncionario(Integer idFuncionario, Date data);

    public abstract void realizarAtendimento(Atendimento atendimento);

    public abstract Integer incluirAnamnese(Anamnese anamnese);
    public abstract Integer alterarAnamnese(Anamnese anamnese);
    public abstract Anamnese getAnamnese(Integer id);
    public abstract List<Anamnese> listarAnamnesePorAnimal(Animal animal);
    
    public abstract Integer incluirExameSolicitado(ExameSolicitado exameSolicitado);
    public abstract Integer alterarExameSolicitado(ExameSolicitado exameSolicitado);
    public abstract ExameSolicitado getExameSolicitado(Integer id);
    public abstract List<ExameSolicitado> listarExameSolicitadoPorAnimal(Animal animal);
    
    public abstract Integer incluirPesagem(Pesagem pesagem);
    public abstract Integer alterarPesagem(Pesagem pesagem);
    public abstract Pesagem getPesagem(Integer id);
    public abstract List<Pesagem> listarPesagemPorAnimal(Animal animal);

    public abstract Integer incluirReceita(Receita receita);
    public abstract Integer alterarReceita(Receita receita);
    public abstract Receita getReceita(Integer id);
    public abstract List<Receita> listarReceitaPorAnimal(Animal animal);
    
    public abstract Integer incluirPendencia(Pendencia pendencia);
    public abstract Integer alterarPendencia(Pendencia pendencia);
    public abstract Pendencia getPendencia(Integer id);
    public abstract List<Pendencia> listarPendenciaPorAnimal(Animal animal);

}
